Skip to content

Add hybrid profiles and examples for spectral printer output and overprint simulaiton#708

Merged
xsscx merged 8 commits intomasterfrom
issue-615
Mar 20, 2026
Merged

Add hybrid profiles and examples for spectral printer output and overprint simulaiton#708
xsscx merged 8 commits intomasterfrom
issue-615

Conversation

@maxderhak
Copy link
Copy Markdown
Contributor

Pull Request Checklist

  • Have you followed the guidelines in Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same change?
  • Have you built your Pull Request locally with the Build Instructions?
  • Have you added or updated relevant tests?
  • Have you added or updated relevant docs?

@maxderhak maxderhak requested a review from xsscx as a code owner March 20, 2026 17:26
@xsscx xsscx self-assigned this Mar 20, 2026
@xsscx xsscx added PR Pull Request Review in Process Issue is being Reviewed by Maintainers Pending Merge Maintainer indicates Merge Pending and requests no further changes and removed Review in Process Issue is being Reviewed by Maintainers pending labels Mar 20, 2026
Copy link
Copy Markdown
Member

@xsscx xsscx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2026-03-20 17:38:48 UTC

@xsscx xsscx merged commit c2ea9da into master Mar 20, 2026
27 checks passed
@xsscx xsscx removed the Pending Merge Maintainer indicates Merge Pending and requests no further changes label Mar 20, 2026
@xsscx xsscx linked an issue Mar 27, 2026 that may be closed by this pull request
xsscx pushed a commit that referenced this pull request Mar 27, 2026
Cast icPerceptual and icAbsolute to (int) in the comparison at
IccCmmConfig.cpp:595 to suppress GCC -Wsign-compare warning.

The int parameter nIntent is compared against icRenderingIntent enum
values which have unsigned underlying type on GCC. Explicit (int) cast
makes the signedness match explicit.

Introduced by commit 53dca81 in PR #708.
CWE-681: Incorrect Conversion between Numeric Types.

Add CI workflow to verify 0 sign-compare warnings with -Werror=sign-compare.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
xsscx pushed a commit that referenced this pull request Mar 27, 2026
Cast icPerceptual and icAbsolute to (int) in the comparison at
IccCmmConfig.cpp:595 to suppress GCC -Wsign-compare warning.

The int parameter nIntent is compared against icRenderingIntent enum
values which have unsigned underlying type on GCC. Explicit (int) cast
makes the signedness match explicit.

Introduced by commit 53dca81 in PR #708.
CWE-681: Incorrect Conversion between Numeric Types.

Add CI workflow to verify 0 sign-compare warnings with -Werror=sign-compare.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
xsscx pushed a commit that referenced this pull request Mar 27, 2026
Cast icPerceptual and icAbsolute to (int) in the comparison at
IccCmmConfig.cpp:595 to suppress GCC -Wsign-compare warning.

The int parameter nIntent is compared against icRenderingIntent enum
values which have unsigned underlying type on GCC. Explicit (int) cast
makes the signedness match explicit.

Introduced by commit 53dca81 in PR #708.
CWE-681: Incorrect Conversion between Numeric Types.

Add CI workflow to verify 0 sign-compare warnings with -Werror=sign-compare.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
xsscx pushed a commit that referenced this pull request Mar 29, 2026
Bisect: BAD f0030ed (PR #708 commit 8/8) / GOOD 9f53e42

BuildAndTest.sh fixes:
  - iccapplyprofiles → iccApplyProfiles (18 lines, fatal on Linux)
  - Backslash paths ICC\ → ICC/ (2 lines, bash escape bug)
  - .ICC → .icc extension (1 line)
  - Add 5 missing iccFromXml builds: CMYK-STop_Overprint,
    MW-Mid_Overprint, MS-Mid_Overprint, SC-Mid_Overprint,
    Cat8Lab-D65_2deg (present in .bat, never ported)
  - Add missing Apply custom observer section
  - Add missing iccTiffDump Results/MS_smCows.tif
  - illumA → IllumA, d50 → D50 (match XML source filenames)

BuildAndTest.bat fixes:
  - iccFromXML.exe → iccFromXml.exe (3 lines, cmake builds iccFromXml)
  - iccapplyprofiles → iccApplyProfiles.exe (21 lines)
  - iccDumpProfile → iccDumpProfile.exe (2 lines, consistency)
  - illumA → IllumA, d50 → D50 (5+1 lines, match XML filenames)

Verified: bash -n syntax pass, 0 wrong-case binaries, all 18 XML
source files exist on disk.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
xsscx pushed a commit that referenced this pull request Mar 29, 2026
Repurpose ci-cfl065-ab-test.yml to validate PR #708 regressions.

A-side: Run FIXED BuildAndTest.sh from fix-ci-scripts branch
B-side: Run BROKEN BuildAndTest.sh from master branch
Build: Debug + ASAN + UBSAN (clang-18)

Expected outcome:
  FIXED:  all commands pass (7 bug categories corrected)
  BROKEN: multiple failures (wrong binary names, backslash paths)

Bisect: BAD f0030ed / GOOD 9f53e42

Governance compliance:
  - Pinned action SHAs (checkout v5.0.0, upload-artifact v6.0.0)
  - BASH_ENV=/dev/null in every step
  - credential.helper cleanup + unset GITHUB_TOKEN
  - sanitize-sed.sh loaded with inline fallback
  - All GITHUB_STEP_SUMMARY writes sanitized per-line
  - persist-credentials: false on all checkouts
  - permissions: contents: read (minimal)
  - bash --noprofile --norc default shell

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
xsscx pushed a commit that referenced this pull request Mar 29, 2026
Update A/B comparison workflow to exit 0 (green) when all PR #708
script regressions are resolved. Remaining failures that occur
identically on both FIXED and BROKEN branches are upstream tool
bugs (iccApplySearch exit 255) — not script issues.

Step summary now includes:
- Script regressions fixed count (18 of 19 recovered)
- Known Upstream Issues section with root cause detail
- Verdict section with per-check status table
- Clear distinction between script bugs (fixed) and tool bugs (pre-existing)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
xsscx pushed a commit that referenced this pull request Mar 29, 2026
Repurpose ci-cfl065-ab-test.yml to validate PR #708 regressions.

A-side: Run FIXED BuildAndTest.sh from fix-ci-scripts branch
B-side: Run BROKEN BuildAndTest.sh from master branch
Build: Debug + ASAN + UBSAN (clang-18)

Expected outcome:
  FIXED:  all commands pass (7 bug categories corrected)
  BROKEN: multiple failures (wrong binary names, backslash paths)

Bisect: BAD f0030ed / GOOD 9f53e42

Governance compliance:
  - Pinned action SHAs (checkout v5.0.0, upload-artifact v6.0.0)
  - BASH_ENV=/dev/null in every step
  - credential.helper cleanup + unset GITHUB_TOKEN
  - sanitize-sed.sh loaded with inline fallback
  - All GITHUB_STEP_SUMMARY writes sanitized per-line
  - persist-credentials: false on all checkouts
  - permissions: contents: read (minimal)
  - bash --noprofile --norc default shell

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
xsscx pushed a commit that referenced this pull request Mar 29, 2026
Update A/B comparison workflow to exit 0 (green) when all PR #708
script regressions are resolved. Remaining failures that occur
identically on both FIXED and BROKEN branches are upstream tool
bugs (iccApplySearch exit 255) — not script issues.

Step summary now includes:
- Script regressions fixed count (18 of 19 recovered)
- Known Upstream Issues section with root cause detail
- Verdict section with per-check status table
- Clear distinction between script bugs (fixed) and tool bugs (pre-existing)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
xsscx pushed a commit that referenced this pull request Mar 29, 2026
- Fix BuildAndTest.sh binary name case (lowercase matches cmake output)
- Fix BuildAndTest.bat config path separators (forward slash → backslash)
- Harden BuildAndTest.sh: set -eu, mkdir -p ICC Results config
- POSIX-safe arithmetic: ((passed++)) → passed=$((passed + 1))
- Add ci-iccdev-tool-tests.yml: 17-phase smoke test for all 15 iccDEV tools
- Add ci-buildandtest-ab.yml: A/B validation for BuildAndTest.sh
- Windows BuildAndTest.bat: continue-on-error for pre-existing Invalid Profile failures
- Remove placeholder .gitkeep files from ICC/ and Results/ directories

Bisect: BAD=f0030ed GOOD=9f53e42 (PR #708 introduced uppercase binary names)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR Pull Request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add examples and fix support for hybrid overprint profiles

2 participants